`ifndef MY_SEQUENCER_SVH
`define MY_SEQUENCER_SVH
/*
    The sequencer generates transaction, and
    the transaction type is "my_transaction" which in line 7
    The driver is for driving transaction.
*/
class my_sequencer extends uvm_sequencer #(my_transaction);
    `uvm_component_utils(my_sequencer)
    function new(string name, uvm_component parent);
        super.new(name, parent);
    endfunction
    extern task main_phase(uvm_phase phase);
endclass

task my_sequencer::main_phase(uvm_phase phase);
    // Start sequence in sequencer, pay a attention on path in <start([path])>
    //my_sequence seq;
    //phase.raise_objection(this);
    //seq = my_sequence::type_id::create("req");
    //seq.start(this);
    //phase.drop_objection(this);
endtask

`endif
